package com.woniu.sharepark.propertysystem.dao;

import com.woniu.sharepark.propertysystem.dto.CommunityDTO;
import com.woniu.sharepark.propertysystem.pojo.Community;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 小区信息数据访问层接口
 * @author xin
 * @date 2019/6/1 12:26
 */
public interface CommunityDAO {
    /**
    * 通过主键删除小区信息
    * @title deleteByPrimaryKey
    * @param comId 主键id
    * @return: int
    * @author xin
    * @date 2019/6/1 12:26
    */
    int deleteByPrimaryKey(Integer comId);

    /**
    * 插入小区信息
    * @title insert
    * @param record 小区信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:26
    */
    int insert(Community record);

    /**
    * 动态插入小区信息
    * @title insertSelective
    * @param record 小区信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:26
    */
    int insertSelective(Community record);

    /**
    * 通过主键查询小区信息
    * @title selectByPrimaryKey
    * @param comId 主键id
    * @return: com.woniu.sharepark.pojo.Community
    * @author xin
    * @date 2019/6/1 12:26
    */
    Community selectByPrimaryKey(Integer comId);

    /**
    * 通过主键动态修改小区信息
    * @title updateByPrimaryKeySelective
    * @param record 小区信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:26
    */
    int updateByPrimaryKeySelective(Community record);

    /**
    * 通过主键修改小区信息
    * @title updateByPrimaryKey
    * @param record 小区信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:26
    */
    int updateByPrimaryKey(Community record);

    /**
    * 分页查询所有小区信息
    * @title selectAllCommunity
    * @param currentPage 当前页
    * @param pageSize  每页数量
    * @return: java.util.List<com.woniu.sharepark.pojo.Community>
    * @author xin
    * @date 2019/6/1 16:58
    */
    List<Community> selectAllCommunity(@Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize);

    /**
    * 根据DTO对象中的内容查找符合条件的Community并返回一个List
    *
    * @param communityDTO 前端传值封装对象，包含省份Province 城市city 以及查询参数nameOrAddress
    * @return java.util.List<com.woniu.sharepark.propertysystem.pojo.Community>
    * @Author Zongjie.Li
    * @Date 2019/6/4
    */
    List<Community> searchCommunityByDTO(CommunityDTO communityDTO);

    /**
    * 动态查询小区信息
    * @title selectCommunitySelective
    * @param community 小区信息
    * @return: com.woniu.sharepark.propertysystem.pojo.Community
    * @author xin
    * @date 2019/6/5 19:21
    */
    Community selectCommunitySelective(Community community);

    /**
    * 查询所有小区不分页
    * @title selectAllCommunityMap
    * @return: java.util.List<com.woniu.sharepark.propertysystem.pojo.Community>
    * @author SeaMonster
    * @date 2019/6/11 16:21
    */
    List<Community> selectAllCommunityMap();


    /**
     * 统计小区总数
     * @title selectAllCount
     * @return int
     * @author xin
     * @date 2019/6/17 16:37
     */
    int selectAllCount();

    /**
    * 用过用户id查找小区
    * @title slectByLid
    * @param lid
    * @return: com.woniu.sharepark.propertysystem.pojo.Community
    * @author SeaMonster
    * @date 2019/6/21 18:21
    */
    Community slectByLid(Integer lid);
}